/**
 * <copyright>
 * </copyright>
 *

 */
package hu.bme.mit.androtext.androdata.androDataDsl;

import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EEnum;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EReference;

/**
 * <!-- begin-user-doc -->
 * The <b>Package</b> for the model.
 * It contains accessors for the meta objects to represent
 * <ul>
 *   <li>each class,</li>
 *   <li>each feature of each class,</li>
 *   <li>each enum,</li>
 *   <li>and each data type</li>
 * </ul>
 * <!-- end-user-doc -->
 * @see hu.bme.mit.androtext.androdata.androDataDsl.AndroDataDslFactory
 * @model kind="package"
 * @generated
 */
public interface AndroDataDslPackage extends EPackage
{
  /**
   * The package name.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  String eNAME = "androDataDsl";

  /**
   * The package namespace URI.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  String eNS_URI = "http://www.bme.hu/mit/androtext/androdata/AndroDataDsl";

  /**
   * The package namespace name.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  String eNS_PREFIX = "androDataDsl";

  /**
   * The singleton instance of the package.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  AndroDataDslPackage eINSTANCE = hu.bme.mit.androtext.androdata.androDataDsl.impl.AndroDataDslPackageImpl.init();

  /**
   * The meta object id for the '{@link hu.bme.mit.androtext.androdata.androDataDsl.impl.AndroDataModelRootImpl <em>Andro Data Model Root</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see hu.bme.mit.androtext.androdata.androDataDsl.impl.AndroDataModelRootImpl
   * @see hu.bme.mit.androtext.androdata.androDataDsl.impl.AndroDataDslPackageImpl#getAndroDataModelRoot()
   * @generated
   */
  int ANDRO_DATA_MODEL_ROOT = 0;

  /**
   * The feature id for the '<em><b>Name</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int ANDRO_DATA_MODEL_ROOT__NAME = 0;

  /**
   * The feature id for the '<em><b>Imports</b></em>' containment reference list.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int ANDRO_DATA_MODEL_ROOT__IMPORTS = 1;

  /**
   * The feature id for the '<em><b>Entities</b></em>' containment reference list.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int ANDRO_DATA_MODEL_ROOT__ENTITIES = 2;

  /**
   * The number of structural features of the '<em>Andro Data Model Root</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int ANDRO_DATA_MODEL_ROOT_FEATURE_COUNT = 3;

  /**
   * The meta object id for the '{@link hu.bme.mit.androtext.androdata.androDataDsl.impl.EntityImpl <em>Entity</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see hu.bme.mit.androtext.androdata.androDataDsl.impl.EntityImpl
   * @see hu.bme.mit.androtext.androdata.androDataDsl.impl.AndroDataDslPackageImpl#getEntity()
   * @generated
   */
  int ENTITY = 1;

  /**
   * The feature id for the '<em><b>Name</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int ENTITY__NAME = 0;

  /**
   * The feature id for the '<em><b>Super Type</b></em>' reference.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int ENTITY__SUPER_TYPE = 1;

  /**
   * The feature id for the '<em><b>Features</b></em>' containment reference list.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int ENTITY__FEATURES = 2;

  /**
   * The number of structural features of the '<em>Entity</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int ENTITY_FEATURE_COUNT = 3;

  /**
   * The meta object id for the '{@link hu.bme.mit.androtext.androdata.androDataDsl.impl.FeatureImpl <em>Feature</em>}' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see hu.bme.mit.androtext.androdata.androDataDsl.impl.FeatureImpl
   * @see hu.bme.mit.androtext.androdata.androDataDsl.impl.AndroDataDslPackageImpl#getFeature()
   * @generated
   */
  int FEATURE = 2;

  /**
   * The feature id for the '<em><b>Name</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int FEATURE__NAME = 0;

  /**
   * The feature id for the '<em><b>Type</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int FEATURE__TYPE = 1;

  /**
   * The number of structural features of the '<em>Feature</em>' class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   * @ordered
   */
  int FEATURE_FEATURE_COUNT = 2;

  /**
   * The meta object id for the '{@link hu.bme.mit.androtext.androdata.androDataDsl.DataTypes <em>Data Types</em>}' enum.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @see hu.bme.mit.androtext.androdata.androDataDsl.DataTypes
   * @see hu.bme.mit.androtext.androdata.androDataDsl.impl.AndroDataDslPackageImpl#getDataTypes()
   * @generated
   */
  int DATA_TYPES = 3;


  /**
   * Returns the meta object for class '{@link hu.bme.mit.androtext.androdata.androDataDsl.AndroDataModelRoot <em>Andro Data Model Root</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Andro Data Model Root</em>'.
   * @see hu.bme.mit.androtext.androdata.androDataDsl.AndroDataModelRoot
   * @generated
   */
  EClass getAndroDataModelRoot();

  /**
   * Returns the meta object for the attribute '{@link hu.bme.mit.androtext.androdata.androDataDsl.AndroDataModelRoot#getName <em>Name</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the attribute '<em>Name</em>'.
   * @see hu.bme.mit.androtext.androdata.androDataDsl.AndroDataModelRoot#getName()
   * @see #getAndroDataModelRoot()
   * @generated
   */
  EAttribute getAndroDataModelRoot_Name();

  /**
   * Returns the meta object for the containment reference list '{@link hu.bme.mit.androtext.androdata.androDataDsl.AndroDataModelRoot#getImports <em>Imports</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the containment reference list '<em>Imports</em>'.
   * @see hu.bme.mit.androtext.androdata.androDataDsl.AndroDataModelRoot#getImports()
   * @see #getAndroDataModelRoot()
   * @generated
   */
  EReference getAndroDataModelRoot_Imports();

  /**
   * Returns the meta object for the containment reference list '{@link hu.bme.mit.androtext.androdata.androDataDsl.AndroDataModelRoot#getEntities <em>Entities</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the containment reference list '<em>Entities</em>'.
   * @see hu.bme.mit.androtext.androdata.androDataDsl.AndroDataModelRoot#getEntities()
   * @see #getAndroDataModelRoot()
   * @generated
   */
  EReference getAndroDataModelRoot_Entities();

  /**
   * Returns the meta object for class '{@link hu.bme.mit.androtext.androdata.androDataDsl.Entity <em>Entity</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Entity</em>'.
   * @see hu.bme.mit.androtext.androdata.androDataDsl.Entity
   * @generated
   */
  EClass getEntity();

  /**
   * Returns the meta object for the attribute '{@link hu.bme.mit.androtext.androdata.androDataDsl.Entity#getName <em>Name</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the attribute '<em>Name</em>'.
   * @see hu.bme.mit.androtext.androdata.androDataDsl.Entity#getName()
   * @see #getEntity()
   * @generated
   */
  EAttribute getEntity_Name();

  /**
   * Returns the meta object for the reference '{@link hu.bme.mit.androtext.androdata.androDataDsl.Entity#getSuperType <em>Super Type</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the reference '<em>Super Type</em>'.
   * @see hu.bme.mit.androtext.androdata.androDataDsl.Entity#getSuperType()
   * @see #getEntity()
   * @generated
   */
  EReference getEntity_SuperType();

  /**
   * Returns the meta object for the containment reference list '{@link hu.bme.mit.androtext.androdata.androDataDsl.Entity#getFeatures <em>Features</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the containment reference list '<em>Features</em>'.
   * @see hu.bme.mit.androtext.androdata.androDataDsl.Entity#getFeatures()
   * @see #getEntity()
   * @generated
   */
  EReference getEntity_Features();

  /**
   * Returns the meta object for class '{@link hu.bme.mit.androtext.androdata.androDataDsl.Feature <em>Feature</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for class '<em>Feature</em>'.
   * @see hu.bme.mit.androtext.androdata.androDataDsl.Feature
   * @generated
   */
  EClass getFeature();

  /**
   * Returns the meta object for the attribute '{@link hu.bme.mit.androtext.androdata.androDataDsl.Feature#getName <em>Name</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the attribute '<em>Name</em>'.
   * @see hu.bme.mit.androtext.androdata.androDataDsl.Feature#getName()
   * @see #getFeature()
   * @generated
   */
  EAttribute getFeature_Name();

  /**
   * Returns the meta object for the attribute '{@link hu.bme.mit.androtext.androdata.androDataDsl.Feature#getType <em>Type</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for the attribute '<em>Type</em>'.
   * @see hu.bme.mit.androtext.androdata.androDataDsl.Feature#getType()
   * @see #getFeature()
   * @generated
   */
  EAttribute getFeature_Type();

  /**
   * Returns the meta object for enum '{@link hu.bme.mit.androtext.androdata.androDataDsl.DataTypes <em>Data Types</em>}'.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the meta object for enum '<em>Data Types</em>'.
   * @see hu.bme.mit.androtext.androdata.androDataDsl.DataTypes
   * @generated
   */
  EEnum getDataTypes();

  /**
   * Returns the factory that creates the instances of the model.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @return the factory that creates the instances of the model.
   * @generated
   */
  AndroDataDslFactory getAndroDataDslFactory();

  /**
   * <!-- begin-user-doc -->
   * Defines literals for the meta objects that represent
   * <ul>
   *   <li>each class,</li>
   *   <li>each feature of each class,</li>
   *   <li>each enum,</li>
   *   <li>and each data type</li>
   * </ul>
   * <!-- end-user-doc -->
   * @generated
   */
  interface Literals
  {
    /**
     * The meta object literal for the '{@link hu.bme.mit.androtext.androdata.androDataDsl.impl.AndroDataModelRootImpl <em>Andro Data Model Root</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see hu.bme.mit.androtext.androdata.androDataDsl.impl.AndroDataModelRootImpl
     * @see hu.bme.mit.androtext.androdata.androDataDsl.impl.AndroDataDslPackageImpl#getAndroDataModelRoot()
     * @generated
     */
    EClass ANDRO_DATA_MODEL_ROOT = eINSTANCE.getAndroDataModelRoot();

    /**
     * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EAttribute ANDRO_DATA_MODEL_ROOT__NAME = eINSTANCE.getAndroDataModelRoot_Name();

    /**
     * The meta object literal for the '<em><b>Imports</b></em>' containment reference list feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference ANDRO_DATA_MODEL_ROOT__IMPORTS = eINSTANCE.getAndroDataModelRoot_Imports();

    /**
     * The meta object literal for the '<em><b>Entities</b></em>' containment reference list feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference ANDRO_DATA_MODEL_ROOT__ENTITIES = eINSTANCE.getAndroDataModelRoot_Entities();

    /**
     * The meta object literal for the '{@link hu.bme.mit.androtext.androdata.androDataDsl.impl.EntityImpl <em>Entity</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see hu.bme.mit.androtext.androdata.androDataDsl.impl.EntityImpl
     * @see hu.bme.mit.androtext.androdata.androDataDsl.impl.AndroDataDslPackageImpl#getEntity()
     * @generated
     */
    EClass ENTITY = eINSTANCE.getEntity();

    /**
     * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EAttribute ENTITY__NAME = eINSTANCE.getEntity_Name();

    /**
     * The meta object literal for the '<em><b>Super Type</b></em>' reference feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference ENTITY__SUPER_TYPE = eINSTANCE.getEntity_SuperType();

    /**
     * The meta object literal for the '<em><b>Features</b></em>' containment reference list feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EReference ENTITY__FEATURES = eINSTANCE.getEntity_Features();

    /**
     * The meta object literal for the '{@link hu.bme.mit.androtext.androdata.androDataDsl.impl.FeatureImpl <em>Feature</em>}' class.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see hu.bme.mit.androtext.androdata.androDataDsl.impl.FeatureImpl
     * @see hu.bme.mit.androtext.androdata.androDataDsl.impl.AndroDataDslPackageImpl#getFeature()
     * @generated
     */
    EClass FEATURE = eINSTANCE.getFeature();

    /**
     * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EAttribute FEATURE__NAME = eINSTANCE.getFeature_Name();

    /**
     * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @generated
     */
    EAttribute FEATURE__TYPE = eINSTANCE.getFeature_Type();

    /**
     * The meta object literal for the '{@link hu.bme.mit.androtext.androdata.androDataDsl.DataTypes <em>Data Types</em>}' enum.
     * <!-- begin-user-doc -->
     * <!-- end-user-doc -->
     * @see hu.bme.mit.androtext.androdata.androDataDsl.DataTypes
     * @see hu.bme.mit.androtext.androdata.androDataDsl.impl.AndroDataDslPackageImpl#getDataTypes()
     * @generated
     */
    EEnum DATA_TYPES = eINSTANCE.getDataTypes();

  }

} //AndroDataDslPackage
